package com.ruoyi.edh.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.edh.domain.EdhReturnGoods;
import com.ruoyi.edh.domain.dto.EdhReturnGoodsDto;
import com.ruoyi.edh.domain.model.EdhReturnGoodsModel;
import com.ruoyi.edh.domain.vo.EdhReturnGoodsVo;

/**
 * 易订购-退回退货Service接口
 *
 * @author xxx
 * @date 2020-09-03
 */
public interface IEdhReturnGoodsService {
    /**
     * 查询易订购-退回退货
     *
     * @param id 易订购-退回退货ID
     * @return 易订购-退回退货
     */
    public Map<String, Object> selectEdhReturnGoodsById(Long id);

    /**
     * 查询易订购-退回退货列表
     *
     * @param edhReturnGoods 易订购-退回退货
     * @return 易订购-退回退货集合
     */
    public List<EdhReturnGoods> selectEdhReturnGoodsList(EdhReturnGoods edhReturnGoods);

    /**
     * 查询易订购-退回退货列表
     *
     * @param edhReturnGoods 易订购-退回退货
     * @return 易订购-退回退货集合
     */
    public List<EdhReturnGoodsVo> selectEdhReturnGoodsVoList(EdhReturnGoodsModel.SearchModel edhReturnGoods);

    /**
     * 新增易订购-退回退货
     *
     * @param edhReturnGoodsDto 易订购-退回退货
     * @return 结果
     */
    public Boolean insertEdhReturnGoods(EdhReturnGoodsDto edhReturnGoodsDto);

    /**
     * 修改易订购-退回退货
     *
     * @param edhReturnGoods 易订购-退回退货
     * @return 结果
     */
    public int updateEdhReturnGoods(EdhReturnGoods edhReturnGoods);

    /**
     * 批量删除易订购-退回退货
     *
     * @param ids 需要删除的易订购-退回退货ID
     * @return 结果
     */
    public int deleteEdhReturnGoodsByIds(Long[] ids);

    /**
     * @param edhReturnGoods
     * @description: 新增退货记录
     * @return: Integer
     * @author: 梁东宸
     * @time: 2020/9/17 2:42 下午
     */
    public Integer addReturn(EdhReturnGoods edhReturnGoods);

    /**
     * 删除易订购-退回退货信息
     *
     * @param id 易订购-退回退货ID
     * @return 结果
     */
    public int deleteEdhReturnGoodsById(Long id);

    /**
     * 审核服务单
     *
     * @param id           退货单id
     * @param isAudit      1 审核通过 2 审核不通过
     * @param returnStatus 0 未收到货物 1已收到货物
     */
    public Integer auditReturnGoods(Long id, String isAudit, String returnStatus, String reason);

    /**
     * 获取退货单各状态的数量
     */
    public Map<String, Object> getStatusNumber();

    Map<String, Object> getDetail(Long orderId);
}
